<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module mpyc.seclists</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="mpyc.html"><font color="#ffffff">mpyc</font></a>.seclists</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="https://github.com/lschoe/mpyc/blob/v0.6/mpyc/seclists.py">github.com/lschoe/mpyc/blob/v0.6/mpyc/seclists.py</a></font></td></tr></table>
    <p><tt>This&nbsp;module&nbsp;provides&nbsp;a&nbsp;secure&nbsp;(oblivious)&nbsp;alternative&nbsp;to&nbsp;Python&nbsp;lists.<br>
&nbsp;<br>
A&nbsp;secure&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;contains&nbsp;secret-shared&nbsp;values.&nbsp;Apart&nbsp;from&nbsp;hiding&nbsp;the&nbsp;contents&nbsp;of&nbsp;the<br>
<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>,&nbsp;however,&nbsp;it&nbsp;is&nbsp;also&nbsp;possible&nbsp;to&nbsp;hide&nbsp;which&nbsp;items&nbsp;are&nbsp;accessed&nbsp;and&nbsp;which&nbsp;items<br>
are&nbsp;updated.&nbsp;In&nbsp;principle,&nbsp;only&nbsp;the&nbsp;length&nbsp;of&nbsp;a&nbsp;secure&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;remains&nbsp;public.<br>
&nbsp;<br>
A&nbsp;secure&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;x&nbsp;can&nbsp;be&nbsp;cast&nbsp;to&nbsp;an&nbsp;ordinary&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;by&nbsp;using&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>(x),&nbsp;without&nbsp;affecting<br>
the&nbsp;contents&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.&nbsp;Also,&nbsp;public&nbsp;access&nbsp;to&nbsp;a&nbsp;secure&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;proceeds&nbsp;the&nbsp;same&nbsp;as<br>
for&nbsp;ordinary&nbsp;Python&nbsp;lists,&nbsp;using&nbsp;an&nbsp;index&nbsp;or&nbsp;a&nbsp;slice.<br>
&nbsp;<br>
For&nbsp;secure&nbsp;(oblivious)&nbsp;access&nbsp;to&nbsp;a&nbsp;secure&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>,&nbsp;however,&nbsp;one&nbsp;uses&nbsp;a&nbsp;secret-shared<br>
index&nbsp;i,&nbsp;which&nbsp;is&nbsp;either&nbsp;a&nbsp;secure&nbsp;number&nbsp;or&nbsp;a&nbsp;secure&nbsp;unit&nbsp;vector.&nbsp;Index&nbsp;i&nbsp;must&nbsp;be<br>
compatible&nbsp;with&nbsp;the&nbsp;secure&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;x:&nbsp;the&nbsp;type&nbsp;of&nbsp;i&nbsp;must&nbsp;fit&nbsp;with&nbsp;the&nbsp;type&nbsp;of&nbsp;the<br>
elements&nbsp;of&nbsp;x&nbsp;and&nbsp;the&nbsp;value&nbsp;of&nbsp;i&nbsp;must&nbsp;fit&nbsp;with&nbsp;the&nbsp;length&nbsp;of&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;x,&nbsp;that&nbsp;is,<br>
0&nbsp;&lt;=&nbsp;i&nbsp;&lt;&nbsp;len(x).<br>
&nbsp;<br>
Common&nbsp;usage&nbsp;scenarios&nbsp;of&nbsp;secure&nbsp;lists&nbsp;are&nbsp;supported&nbsp;through&nbsp;functions&nbsp;such&nbsp;as&nbsp;count()<br>
and&nbsp;index(),&nbsp;or&nbsp;can&nbsp;be&nbsp;coded&nbsp;easily.&nbsp;For&nbsp;example,&nbsp;the&nbsp;frequency&nbsp;of&nbsp;values&nbsp;in&nbsp;a&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;x<br>
of&nbsp;secure&nbsp;integers&nbsp;(which&nbsp;are&nbsp;known&nbsp;to&nbsp;be&nbsp;between&nbsp;0&nbsp;and&nbsp;n-1)&nbsp;is&nbsp;computed&nbsp;by:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;=&nbsp;<a href="#seclist">seclist</a>([0]*n,&nbsp;secint)<br>
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;a&nbsp;in&nbsp;x:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[a]&nbsp;+=&nbsp;1<br>
&nbsp;<br>
Current&nbsp;implementation&nbsp;is&nbsp;basic,&nbsp;taking&nbsp;advantage&nbsp;of&nbsp;cheap&nbsp;secure&nbsp;dot&nbsp;products,&nbsp;as<br>
provided&nbsp;by&nbsp;runtime.in_prod().&nbsp;Performance&nbsp;for&nbsp;modestly&nbsp;sized&nbsp;lists&nbsp;of&nbsp;lengths&nbsp;10&nbsp;to&nbsp;1000<br>
should&nbsp;be&nbsp;adequate.&nbsp;Later:&nbsp;With&nbsp;better&nbsp;amortized&nbsp;complexity,&nbsp;e.g.,&nbsp;square&nbsp;root&nbsp;ORAM.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="mpyc.asyncoro.html">mpyc.asyncoro</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>(<a href="https://docs.python.org/3/library/functions.html#object">builtins.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="mpyc.seclists.html#secindex">secindex</a>
</font></dt><dt><font face="helvetica, arial"><a href="mpyc.seclists.html#seclist">seclist</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="secindex">class <strong>secindex</strong></a>(<a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt><a href="#secindex">secindex</a>(*args,&nbsp;offset=0,&nbsp;sectype=None)<br>
&nbsp;<br>
Provisional&nbsp;class&nbsp;to&nbsp;facilitate&nbsp;more&nbsp;efficient&nbsp;manipulation&nbsp;of&nbsp;secure&nbsp;indices.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="mpyc.seclists.html#secindex">secindex</a></dd>
<dd><a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a></dd>
<dd><a href="https://docs.python.org/3/library/functions.html#object">builtins.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="secindex-__add__"><strong>__add__</strong></a>(self, other)</dt><dd><tt>Return&nbsp;self+value.</tt></dd></dl>

<dl><dt><a name="secindex-__await__"><strong>__await__</strong></a>(self)</dt></dl>

<dl><dt><a name="secindex-__index__"><strong>__index__</strong></a>(self)</dt></dl>

<dl><dt><a name="secindex-__init__"><strong>__init__</strong></a>(self, *args, offset=0, sectype=None)</dt><dd><tt>Initialize&nbsp;self.&nbsp;&nbsp;See&nbsp;help(type(self))&nbsp;for&nbsp;accurate&nbsp;signature.</tt></dd></dl>

<hr>
Static methods defined here:<br>
<dl><dt><a name="secindex-random"><strong>random</strong></a>(sectype, length, offset=0)</dt></dl>

<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>:<br>
<dl><dt><a name="secindex-__contains__"><strong>__contains__</strong></a>(self, key, /)</dt><dd><tt>Return&nbsp;key&nbsp;in&nbsp;self.</tt></dd></dl>

<dl><dt><a name="secindex-__delitem__"><strong>__delitem__</strong></a>(self, key, /)</dt><dd><tt>Delete&nbsp;self[key].</tt></dd></dl>

<dl><dt><a name="secindex-__eq__"><strong>__eq__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self==value.</tt></dd></dl>

<dl><dt><a name="secindex-__ge__"><strong>__ge__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&gt;=value.</tt></dd></dl>

<dl><dt><a name="secindex-__getattribute__"><strong>__getattribute__</strong></a>(self, name, /)</dt><dd><tt>Return&nbsp;getattr(self,&nbsp;name).</tt></dd></dl>

<dl><dt><a name="secindex-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#secindex-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>

<dl><dt><a name="secindex-__gt__"><strong>__gt__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&gt;value.</tt></dd></dl>

<dl><dt><a name="secindex-__iadd__"><strong>__iadd__</strong></a>(self, value, /)</dt><dd><tt>Implement&nbsp;self+=value.</tt></dd></dl>

<dl><dt><a name="secindex-__imul__"><strong>__imul__</strong></a>(self, value, /)</dt><dd><tt>Implement&nbsp;self*=value.</tt></dd></dl>

<dl><dt><a name="secindex-__iter__"><strong>__iter__</strong></a>(self, /)</dt><dd><tt>Implement&nbsp;iter(self).</tt></dd></dl>

<dl><dt><a name="secindex-__le__"><strong>__le__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&lt;=value.</tt></dd></dl>

<dl><dt><a name="secindex-__len__"><strong>__len__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;len(self).</tt></dd></dl>

<dl><dt><a name="secindex-__lt__"><strong>__lt__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&lt;value.</tt></dd></dl>

<dl><dt><a name="secindex-__mul__"><strong>__mul__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self*value.</tt></dd></dl>

<dl><dt><a name="secindex-__ne__"><strong>__ne__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self!=value.</tt></dd></dl>

<dl><dt><a name="secindex-__repr__"><strong>__repr__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;repr(self).</tt></dd></dl>

<dl><dt><a name="secindex-__reversed__"><strong>__reversed__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;a&nbsp;reverse&nbsp;iterator&nbsp;over&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="secindex-__rmul__"><strong>__rmul__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;value*self.</tt></dd></dl>

<dl><dt><a name="secindex-__setitem__"><strong>__setitem__</strong></a>(self, key, value, /)</dt><dd><tt>Set&nbsp;self[key]&nbsp;to&nbsp;value.</tt></dd></dl>

<dl><dt><a name="secindex-__sizeof__"><strong>__sizeof__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;in&nbsp;memory,&nbsp;in&nbsp;bytes.</tt></dd></dl>

<dl><dt><a name="secindex-append"><strong>append</strong></a>(self, object, /)</dt><dd><tt>Append&nbsp;object&nbsp;to&nbsp;the&nbsp;end&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="secindex-clear"><strong>clear</strong></a>(self, /)</dt><dd><tt>Remove&nbsp;all&nbsp;items&nbsp;from&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="secindex-copy"><strong>copy</strong></a>(self, /)</dt><dd><tt>Return&nbsp;a&nbsp;shallow&nbsp;copy&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="secindex-count"><strong>count</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;number&nbsp;of&nbsp;occurrences&nbsp;of&nbsp;value.</tt></dd></dl>

<dl><dt><a name="secindex-extend"><strong>extend</strong></a>(self, iterable, /)</dt><dd><tt>Extend&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;by&nbsp;appending&nbsp;elements&nbsp;from&nbsp;the&nbsp;iterable.</tt></dd></dl>

<dl><dt><a name="secindex-index"><strong>index</strong></a>(self, value, start=0, stop=9223372036854775807, /)</dt><dd><tt>Return&nbsp;first&nbsp;index&nbsp;of&nbsp;value.<br>
&nbsp;<br>
Raises&nbsp;ValueError&nbsp;if&nbsp;the&nbsp;value&nbsp;is&nbsp;not&nbsp;present.</tt></dd></dl>

<dl><dt><a name="secindex-insert"><strong>insert</strong></a>(self, index, object, /)</dt><dd><tt>Insert&nbsp;object&nbsp;before&nbsp;index.</tt></dd></dl>

<dl><dt><a name="secindex-pop"><strong>pop</strong></a>(self, index=-1, /)</dt><dd><tt>Remove&nbsp;and&nbsp;return&nbsp;item&nbsp;at&nbsp;index&nbsp;(default&nbsp;last).<br>
&nbsp;<br>
Raises&nbsp;IndexError&nbsp;if&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;is&nbsp;empty&nbsp;or&nbsp;index&nbsp;is&nbsp;out&nbsp;of&nbsp;range.</tt></dd></dl>

<dl><dt><a name="secindex-remove"><strong>remove</strong></a>(self, value, /)</dt><dd><tt>Remove&nbsp;first&nbsp;occurrence&nbsp;of&nbsp;value.<br>
&nbsp;<br>
Raises&nbsp;ValueError&nbsp;if&nbsp;the&nbsp;value&nbsp;is&nbsp;not&nbsp;present.</tt></dd></dl>

<dl><dt><a name="secindex-reverse"><strong>reverse</strong></a>(self, /)</dt><dd><tt>Reverse&nbsp;*IN&nbsp;PLACE*.</tt></dd></dl>

<dl><dt><a name="secindex-sort"><strong>sort</strong></a>(self, /, *, key=None, reverse=False)</dt><dd><tt>Stable&nbsp;sort&nbsp;*IN&nbsp;PLACE*.</tt></dd></dl>

<hr>
Static methods inherited from <a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>:<br>
<dl><dt><a name="secindex-__new__"><strong>__new__</strong></a>(*args, **kwargs)<font color="#909090"><font face="helvetica, arial"> from <a href="https://docs.python.org/3/library/functions.html#type">builtins.type</a></font></font></dt><dd><tt>Create&nbsp;and&nbsp;return&nbsp;a&nbsp;new&nbsp;object.&nbsp;&nbsp;See&nbsp;help(type)&nbsp;for&nbsp;accurate&nbsp;signature.</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>:<br>
<dl><dt><strong>__hash__</strong> = None</dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="seclist">class <strong>seclist</strong></a>(<a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt><a href="#seclist">seclist</a>(x=(),&nbsp;sectype=None)<br>
&nbsp;<br>
Built-in&nbsp;mutable&nbsp;sequence.<br>
&nbsp;<br>
If&nbsp;no&nbsp;argument&nbsp;is&nbsp;given,&nbsp;the&nbsp;constructor&nbsp;creates&nbsp;a&nbsp;new&nbsp;empty&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.<br>
The&nbsp;argument&nbsp;must&nbsp;be&nbsp;an&nbsp;iterable&nbsp;if&nbsp;specified.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="mpyc.seclists.html#seclist">seclist</a></dd>
<dd><a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a></dd>
<dd><a href="https://docs.python.org/3/library/functions.html#object">builtins.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="seclist-__add__"><strong>__add__</strong></a>(self, other)</dt><dd><tt>Return&nbsp;self+value.</tt></dd></dl>

<dl><dt><a name="seclist-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Check&nbsp;if&nbsp;item&nbsp;occurs&nbsp;in&nbsp;self.</tt></dd></dl>

<dl><dt><a name="seclist-__getitem__"><strong>__getitem__</strong></a>(self, key)</dt><dd><tt>Called&nbsp;to&nbsp;evaluate&nbsp;self[key],&nbsp;where&nbsp;key&nbsp;is&nbsp;either&nbsp;public&nbsp;or&nbsp;secret.<br>
&nbsp;<br>
If&nbsp;key&nbsp;is&nbsp;a&nbsp;public&nbsp;integer&nbsp;(or&nbsp;a&nbsp;slice),&nbsp;the&nbsp;behavior&nbsp;is&nbsp;the&nbsp;same&nbsp;as&nbsp;for&nbsp;ordinary&nbsp;lists.<br>
If&nbsp;key&nbsp;is&nbsp;a&nbsp;secure&nbsp;number&nbsp;or&nbsp;index,&nbsp;the&nbsp;value&nbsp;at&nbsp;the&nbsp;secret&nbsp;position&nbsp;is&nbsp;returned.</tt></dd></dl>

<dl><dt><a name="seclist-__iadd__"><strong>__iadd__</strong></a>(self, other)</dt><dd><tt>Implement&nbsp;self+=value.</tt></dd></dl>

<dl><dt><a name="seclist-__init__"><strong>__init__</strong></a>(self, x=(), sectype=None)</dt><dd><tt>Build&nbsp;a&nbsp;secure&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;from&nbsp;the&nbsp;items&nbsp;in&nbsp;iterable&nbsp;x&nbsp;using&nbsp;the&nbsp;given&nbsp;secure&nbsp;type.<br>
&nbsp;<br>
If&nbsp;no&nbsp;secure&nbsp;type&nbsp;is&nbsp;given,&nbsp;it&nbsp;is&nbsp;inferred&nbsp;from&nbsp;the&nbsp;items&nbsp;in&nbsp;x.<br>
&nbsp;<br>
Invariant:&nbsp;all&nbsp;items&nbsp;in&nbsp;x&nbsp;are&nbsp;of&nbsp;the&nbsp;same&nbsp;secure&nbsp;type.</tt></dd></dl>

<dl><dt><a name="seclist-__radd__"><strong>__radd__</strong></a>(self, other)</dt></dl>

<dl><dt><a name="seclist-__setitem__"><strong>__setitem__</strong></a>(self, key, value)</dt><dd><tt>Called&nbsp;to&nbsp;set&nbsp;self[key]&nbsp;=&nbsp;value,&nbsp;where&nbsp;key&nbsp;is&nbsp;either&nbsp;public&nbsp;or&nbsp;secret.<br>
The&nbsp;type&nbsp;of&nbsp;value&nbsp;should&nbsp;fit&nbsp;with&nbsp;the&nbsp;type&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.<br>
&nbsp;<br>
If&nbsp;key&nbsp;is&nbsp;a&nbsp;public&nbsp;integer&nbsp;(or&nbsp;a&nbsp;slice),&nbsp;the&nbsp;behavior&nbsp;is&nbsp;the&nbsp;same&nbsp;as&nbsp;for&nbsp;ordinary&nbsp;lists.<br>
If&nbsp;key&nbsp;is&nbsp;a&nbsp;secure&nbsp;number&nbsp;or&nbsp;index,&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;is&nbsp;updated&nbsp;at&nbsp;the&nbsp;secret&nbsp;position.</tt></dd></dl>

<dl><dt><a name="seclist-append"><strong>append</strong></a>(self, other)</dt><dd><tt>Append&nbsp;object&nbsp;to&nbsp;the&nbsp;end&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="seclist-copy"><strong>copy</strong></a>(self)</dt><dd><tt>Return&nbsp;a&nbsp;shallow&nbsp;copy&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="seclist-count"><strong>count</strong></a>(self, value)</dt><dd><tt>Return&nbsp;the&nbsp;number&nbsp;of&nbsp;occurrences&nbsp;of&nbsp;value.</tt></dd></dl>

<dl><dt><a name="seclist-extend"><strong>extend</strong></a>(self, other)</dt><dd><tt>Extend&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;by&nbsp;appending&nbsp;elements&nbsp;from&nbsp;the&nbsp;iterable.</tt></dd></dl>

<dl><dt><a name="seclist-find"><strong>find</strong></a>(self, value)</dt><dd><tt>Return&nbsp;index&nbsp;of&nbsp;the&nbsp;first&nbsp;occurrence&nbsp;of&nbsp;value.<br>
&nbsp;<br>
If&nbsp;value&nbsp;is&nbsp;not&nbsp;present,&nbsp;then&nbsp;index&nbsp;is&nbsp;equal&nbsp;to&nbsp;len(self).</tt></dd></dl>

<dl><dt><a name="seclist-index"><strong>index</strong></a>(self, value)</dt><dd><tt>Return&nbsp;index&nbsp;of&nbsp;the&nbsp;first&nbsp;occurrence&nbsp;of&nbsp;value.<br>
&nbsp;<br>
Raise&nbsp;ValueError&nbsp;if&nbsp;value&nbsp;is&nbsp;not&nbsp;present.</tt></dd></dl>

<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>:<br>
<dl><dt><a name="seclist-__delitem__"><strong>__delitem__</strong></a>(self, key, /)</dt><dd><tt>Delete&nbsp;self[key].</tt></dd></dl>

<dl><dt><a name="seclist-__eq__"><strong>__eq__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self==value.</tt></dd></dl>

<dl><dt><a name="seclist-__ge__"><strong>__ge__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&gt;=value.</tt></dd></dl>

<dl><dt><a name="seclist-__getattribute__"><strong>__getattribute__</strong></a>(self, name, /)</dt><dd><tt>Return&nbsp;getattr(self,&nbsp;name).</tt></dd></dl>

<dl><dt><a name="seclist-__gt__"><strong>__gt__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&gt;value.</tt></dd></dl>

<dl><dt><a name="seclist-__imul__"><strong>__imul__</strong></a>(self, value, /)</dt><dd><tt>Implement&nbsp;self*=value.</tt></dd></dl>

<dl><dt><a name="seclist-__iter__"><strong>__iter__</strong></a>(self, /)</dt><dd><tt>Implement&nbsp;iter(self).</tt></dd></dl>

<dl><dt><a name="seclist-__le__"><strong>__le__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&lt;=value.</tt></dd></dl>

<dl><dt><a name="seclist-__len__"><strong>__len__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;len(self).</tt></dd></dl>

<dl><dt><a name="seclist-__lt__"><strong>__lt__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self&lt;value.</tt></dd></dl>

<dl><dt><a name="seclist-__mul__"><strong>__mul__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self*value.</tt></dd></dl>

<dl><dt><a name="seclist-__ne__"><strong>__ne__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;self!=value.</tt></dd></dl>

<dl><dt><a name="seclist-__repr__"><strong>__repr__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;repr(self).</tt></dd></dl>

<dl><dt><a name="seclist-__reversed__"><strong>__reversed__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;a&nbsp;reverse&nbsp;iterator&nbsp;over&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="seclist-__rmul__"><strong>__rmul__</strong></a>(self, value, /)</dt><dd><tt>Return&nbsp;value*self.</tt></dd></dl>

<dl><dt><a name="seclist-__sizeof__"><strong>__sizeof__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;in&nbsp;memory,&nbsp;in&nbsp;bytes.</tt></dd></dl>

<dl><dt><a name="seclist-clear"><strong>clear</strong></a>(self, /)</dt><dd><tt>Remove&nbsp;all&nbsp;items&nbsp;from&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>.</tt></dd></dl>

<dl><dt><a name="seclist-insert"><strong>insert</strong></a>(self, index, object, /)</dt><dd><tt>Insert&nbsp;object&nbsp;before&nbsp;index.</tt></dd></dl>

<dl><dt><a name="seclist-pop"><strong>pop</strong></a>(self, index=-1, /)</dt><dd><tt>Remove&nbsp;and&nbsp;return&nbsp;item&nbsp;at&nbsp;index&nbsp;(default&nbsp;last).<br>
&nbsp;<br>
Raises&nbsp;IndexError&nbsp;if&nbsp;<a href="https://docs.python.org/3/library/stdtypes.html#list">list</a>&nbsp;is&nbsp;empty&nbsp;or&nbsp;index&nbsp;is&nbsp;out&nbsp;of&nbsp;range.</tt></dd></dl>

<dl><dt><a name="seclist-remove"><strong>remove</strong></a>(self, value, /)</dt><dd><tt>Remove&nbsp;first&nbsp;occurrence&nbsp;of&nbsp;value.<br>
&nbsp;<br>
Raises&nbsp;ValueError&nbsp;if&nbsp;the&nbsp;value&nbsp;is&nbsp;not&nbsp;present.</tt></dd></dl>

<dl><dt><a name="seclist-reverse"><strong>reverse</strong></a>(self, /)</dt><dd><tt>Reverse&nbsp;*IN&nbsp;PLACE*.</tt></dd></dl>

<dl><dt><a name="seclist-sort"><strong>sort</strong></a>(self, /, *, key=None, reverse=False)</dt><dd><tt>Stable&nbsp;sort&nbsp;*IN&nbsp;PLACE*.</tt></dd></dl>

<hr>
Static methods inherited from <a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>:<br>
<dl><dt><a name="seclist-__new__"><strong>__new__</strong></a>(*args, **kwargs)<font color="#909090"><font face="helvetica, arial"> from <a href="https://docs.python.org/3/library/functions.html#type">builtins.type</a></font></font></dt><dd><tt>Create&nbsp;and&nbsp;return&nbsp;a&nbsp;new&nbsp;object.&nbsp;&nbsp;See&nbsp;help(type)&nbsp;for&nbsp;accurate&nbsp;signature.</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="https://docs.python.org/3/library/stdtypes.html#list">builtins.list</a>:<br>
<dl><dt><strong>__hash__</strong> = None</dl>

</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>runtime</strong> = None</td></tr></table>
</body></html>